---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.14.0
  creationTimestamp: null
  name: ciliumbgpadvertisements.cilium.io
spec:
  group: cilium.io
  names:
    categories:
    - cilium
    - ciliumbgp
    kind: CiliumBGPAdvertisement
    listKind: CiliumBGPAdvertisementList
    plural: ciliumbgpadvertisements
    shortNames:
    - cbgpadvert
    singular: ciliumbgpadvertisement
  scope: Cluster
  versions:
  - additionalPrinterColumns:
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v2alpha1
    schema:
      openAPIV3Schema:
        description: CiliumBGPAdvertisement is the Schema for the ciliumbgpadvertisements
          API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            properties:
              advertisements:
                description: Advertisements is a list of BGP advertisements.
                items:
                  description: Advertisement defines which routes Cilium should advertise
                    to BGP peers. Optionally, additional attributes can be set to
                    the advertised routes.
                  properties:
                    advertisementType:
                      description: AdvertisementType defines type of advertisement
                        which has to be advertised.
                      enum:
                      - PodCIDR
                      - CiliumPodIPPool
                      - CiliumLoadBalancerIP
                      type: string
                    attributes:
                      description: Attributes defines additional attributes to set
                        to the advertised routes. If not specified, no additional
                        attributes are set.
                      properties:
                        community:
                          description: Community sets the community attribute in the
                            route. If not specified, no community attribute is set.
                          properties:
                            large:
                              description: Large holds a list of the BGP Large Communities
                                Attribute (RFC 8092) values.
                              items:
                                description: BGPLargeCommunity type represents a value
                                  of the BGP Large Communities Attribute (RFC 8092),
                                  as three 4-byte decimal numbers separated by colons.
                                pattern: ^([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[01][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[01][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]):([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[01][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[01][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]):([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[01][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[01][0-9]{2}|42949672[0-8][0-9]|429496729[0-5])$
                                type: string
                              type: array
                            standard:
                              description: Standard holds a list of "standard" 32-bit
                                BGP Communities Attribute (RFC 1997) values defined
                                as numeric values.
                              items:
                                description: BGPStandardCommunity type represents
                                  a value of the "standard" 32-bit BGP Communities
                                  Attribute (RFC 1997) as a 4-byte decimal number
                                  or two 2-byte decimal numbers separated by a colon
                                  (<0-65535>:<0-65535>). For example, no-export community
                                  value is 65553:65281.
                                pattern: ^([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[01][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[01][0-9]{2}|42949672[0-8][0-9]|429496729[0-5])$|^([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]):([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$
                                type: string
                              type: array
                            wellKnown:
                              description: WellKnown holds a list "standard" 32-bit
                                BGP Communities Attribute (RFC 1997) values defined
                                as well-known string aliases to their numeric values.
                              items:
                                description: "BGPWellKnownCommunity type represents
                                  a value of the \"standard\" 32-bit BGP Communities
                                  Attribute (RFC 1997) as a well-known string alias
                                  to its numeric value. Allowed values and their mapping
                                  to the numeric values: \n internet                   =
                                  0x00000000 (0:0) planned-shut               = 0xffff0000
                                  (65535:0) accept-own                 = 0xffff0001
                                  (65535:1) route-filter-translated-v4 = 0xffff0002
                                  (65535:2) route-filter-v4            = 0xffff0003
                                  (65535:3) route-filter-translated-v6 = 0xffff0004
                                  (65535:4) route-filter-v6            = 0xffff0005
                                  (65535:5) llgr-stale                 = 0xffff0006
                                  (65535:6) no-llgr                    = 0xffff0007
                                  (65535:7) blackhole                  = 0xffff029a
                                  (65535:666) no-export                  = 0xffffff01\t(65535:65281)
                                  no-advertise               = 0xffffff02 (65535:65282)
                                  no-export-subconfed        = 0xffffff03 (65535:65283)
                                  no-peer                    = 0xffffff04 (65535:65284)"
                                enum:
                                - internet
                                - planned-shut
                                - accept-own
                                - route-filter-translated-v4
                                - route-filter-v4
                                - route-filter-translated-v6
                                - route-filter-v6
                                - llgr-stale
                                - no-llgr
                                - blackhole
                                - no-export
                                - no-advertise
                                - no-export-subconfed
                                - no-peer
                                type: string
                              type: array
                          type: object
                        localPreference:
                          description: LocalPreference sets the local preference attribute
                            in the route. If not specified, no local preference attribute
                            is set.
                          format: int64
                          type: integer
                      type: object
                    selector:
                      description: Selector is a label selector to select objects
                        of the type specified by AdvertisementType. If not specified,
                        all objects of the type specified by AdvertisementType are
                        selected for advertisement.
                      properties:
                        matchExpressions:
                          description: matchExpressions is a list of label selector
                            requirements. The requirements are ANDed.
                          items:
                            description: A label selector requirement is a selector
                              that contains values, a key, and an operator that relates
                              the key and values.
                            properties:
                              key:
                                description: key is the label key that the selector
                                  applies to.
                                type: string
                              operator:
                                description: operator represents a key's relationship
                                  to a set of values. Valid operators are In, NotIn,
                                  Exists and DoesNotExist.
                                enum:
                                - In
                                - NotIn
                                - Exists
                                - DoesNotExist
                                type: string
                              values:
                                description: values is an array of string values.
                                  If the operator is In or NotIn, the values array
                                  must be non-empty. If the operator is Exists or
                                  DoesNotExist, the values array must be empty. This
                                  array is replaced during a strategic merge patch.
                                items:
                                  type: string
                                type: array
                            required:
                            - key
                            - operator
                            type: object
                          type: array
                        matchLabels:
                          additionalProperties:
                            description: MatchLabelsValue represents the value from
                              the MatchLabels {key,value} pair.
                            maxLength: 63
                            pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$
                            type: string
                          description: matchLabels is a map of {key,value} pairs.
                            A single {key,value} in the matchLabels map is equivalent
                            to an element of matchExpressions, whose key field is
                            "key", the operator is "In", and the values array contains
                            only "value". The requirements are ANDed.
                          type: object
                      type: object
                  required:
                  - advertisementType
                  type: object
                minItems: 1
                type: array
            required:
            - advertisements
            type: object
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true
    subresources: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
